#!/bin/bash

# 安装KVM
function install_kvm() {
  # 安装必要的软件包并显示进度
  echo "正在安装KVM及必要的软件包..."
  yum install -y virt-* libvirt bridge-utils qemu* net-tools epel-release glibc-common langpacks-zh_CN wqy-microhei-fonts 
  echo "必要的软件包已安装。"

  # 设置中文环境变量和字体
  echo "正在设置中文环境变量和字体..."
  export LANG=zh_CN.UTF-8
  gsettings set org.gnome.desktop.interface font-name 'WenQuanYi Micro Hei 11' 
  echo "中文环境变量和字体已设置。"

  # 启动和设置libvirtd服务
  echo "正在启动和设置libvirtd服务..."
  systemctl start libvirtd 
  systemctl enable libvirtd 
  echo "libvirtd服务已启动和设置。"
}

# 配置桥接网络
function configure_bridge() {
  # 提示用户输入桥接网络配置信息
  read -p "请输入要配置的桥IP地址（例如10.75.2.28）：" ipaddr
  read -p "请输入桥网关地址（例如10.75.2.1）：" gateway
  read -p "请输入桥DNS服务器地址（例如114.114.114.114）：" dns
  prefix=24
  type=Bridge
  bootproto=static
  onboot=yes

  # 提示用户输入桥名称和要桥接的网卡
  read -p "请输入要桥接的网卡（例如em4）：" nic
  read -p "请输入桥名称（例如br0）：" bridge

  # 将配置信息写入桥配置文件
  echo "正在写入桥配置文件..."
  cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$bridge
TYPE=$type
BOOTPROTO=$bootproto
NAME=$bridge
DEVICE=$bridge
ONBOOT=$onboot
IPADDR=$ipaddr
PREFIX=$prefix
GATEWAY=$gateway
DNS1=$dns
EOF
  echo "桥配置文件已写入。"

  # 将配置信息写入桥接网卡配置文件
  echo "正在写入桥接网卡配置文件..."
  cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$nic
TYPE=Ethernet
BOOTPROTO=none
NAME=$nic
DEVICE=$nic
ONBOOT=yes
BRIDGE=$bridge
EOF
  echo "桥接网卡配置文件已写入。"

  # 重启网络服务
  echo "正在重启网络服务..."
  systemctl restart network > /dev/null 2>&1
  echo "网络服务已重启。"
}

# 依次调用函数
install_kvm
configure_bridge

echo "KVM安装和网络配置已完成。"

echo  "如果virt-manager显示英文，请按照下面指令配置"
echo  "export LANG=zh_CN.UTF-8
gsettings set org.gnome.desktop.interface font-name 'WenQuanYi Micro Hei 11' 
systemctl restart libvirtd"